package com.hebeu.device.service.impl;

import com.github.pagehelper.PageHelper;
import com.hebeu.device.dao.DUserMapper;
import com.hebeu.device.pojo.DUser;
import com.hebeu.device.pojo.DUserExample;
import com.hebeu.device.service.UserService;
import com.hebeu.device.utils.StringUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/*
    用户
 */
@Service
public class UserServiceImpl implements UserService {

    DUserExample dUserExample = new DUserExample();
    DUserExample.Criteria criteria = dUserExample.createCriteria();

    @Resource
    DUserMapper duserMapper;

    //通过用户名和密码查询
    @Override
    public DUser getDUser(String userName,String password) {

        DUserExample dUserExample = new DUserExample();
        DUserExample.Criteria criteria = dUserExample.createCriteria();
        //添加查询条件  用户名
        criteria.andUsernameEqualTo(userName);
        //密码
        criteria.andPasswordEqualTo(password);
        //执行查询语句
        List<DUser> dUserList = duserMapper.selectByExample(dUserExample);
        //若查询结果条数大于0返回第一个数据，否则返回空
        return dUserList.size()==0?null:dUserList.get(0);
    }

    //分页
    @Override
    public List<DUser> getDUser(DUser dUser) {
        String desc = null;
//        if(dUser.getuType() == 1){
//            desc = "超级管理员";
//        } else if(dUser.getuType() == 2){
//            desc="客服";
//        } else if(dUser.getuType() == 3){
//            desc="任务调度";
//        } else if(dUser.getuType() == 4){
//            desc="技术工程师";
//        } else if(dUser.getuType() == 5){
//            desc="库管";
//        } else if(dUser.getuType() == 6){
//            desc="运营监督";
//        }

        PageHelper.startPage(dUser.getPageNo(),dUser.getPageSize());
        DUserExample dUserExample = new DUserExample();
        DUserExample.Criteria criteria = dUserExample.createCriteria();
            if(StringUtils.isNotEmpty(dUser.getUsername())){
                criteria.andUsernameLike("%"+dUser.getUsername()+"%");
            }

//            if(StringUtils.isNotEmpty(desc)){
//                criteria.andUTypeEqualTo(dUser.getuType());
//
//            }
            if(dUser.getIsEffectice() != null)
                criteria.andIsEffecticeEqualTo(dUser.getIsEffectice());
            List<DUser> dUsers = duserMapper.selectByExample(dUserExample);
        return dUsers;
    }


    //通过id查询
    @Override
    public DUser getUserById(String uId) {
        return duserMapper.selectByPrimaryKey(uId);
    }



    //修改用户信息
    @Override
    public int updateDUser(DUser dUser) {
        return duserMapper.updateByPrimaryKeySelective(dUser);
    }
    //添加用户
    @Override
    public int addDUser(DUser dUser) {
        return duserMapper.insertSelective(dUser);
    }
    //删除用户
    @Override
    public int delDUser(DUser dUser) {
        System.out.println("修改成功了？");
        return duserMapper.updateByPrimaryKeySelective(dUser);
    }
    //查询所有用户信息
    @Override
    public List<DUser> getAllDuser(DUser dUser) {
        System.out.println("列表打印");
        return duserMapper.selectByExample(dUserExample);
    }

    //  修改密码
    @Override
    public Object modifyPassword(String pass, String newpass, String username, HttpSession session){
        Map<String,Object> map=new HashMap<String, Object>();
        if(pass!=null){
//       前端传过来的密码进行加密处理，如果你的数据用的是md5加密的话，需要进行一下加密，因为你前端传过来的是明文，数据库密码是经过加密的然后进行查询，
            //   String passwords=MD5Encode.encode(password);
            //  User user=userMapper.selectBypassword(passwords,username);
            DUserExample dUserExample = new DUserExample();
            DUserExample.Criteria criteria = dUserExample.createCriteria();

            criteria.andUsernameEqualTo(username);
            //密码
            criteria.andPasswordEqualTo(pass);
            List<DUser> dUserList = duserMapper.selectByExample(dUserExample);
            DUser user=dUserList.get(0);
            //获得用户的id

            String id=user.getuId();
//        数据库密码
            String yspassword=user.getPassword();
//            String pwd=password;
//			 if(yspassword.equals(passwords)){
            if(yspassword.equals(pass)){
                DUser u=new DUser();
                u.setuId(id);
//            对新密码进行加密
                //       u.setPassword(MD5Encode.encode(newpassword));
                u.setPassword(newpass);
//            修改数据库的旧密码
                return duserMapper.updateByPrimaryKeySelective(u);
//            map;
            }
        }
        return 0;
    }



}
